package run.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import feign.Logger;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author zhangxian
 * @program: parent
 * @description:
 * @date 2022-03-23 14:03:48
 */
@Configuration
public class ConfigBean {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

    @Bean
    public IRule myRule() {
        // RandomRule 为随机策略
        return  new RandomRule();
    }

    /**
     * OpenFeign 日志增强
     * 配置 OpenFeign 记录哪些内容
     */
    @Bean
    Logger.Level feginLoggerLevel() {

//        Logger.Level 的具体级别如下：
//        NONE：不记录任何信息。
//        BASIC：仅记录请求方法、URL 以及响应状态码和执行时间。
//        HEADERS：除了记录 BASIC 级别的信息外，还会记录请求和响应的头信息。
//        FULL：记录所有请求与响应的明细，包括头信息、请求体、元数据等等。
        return Logger.Level.FULL;
    }
}
